# 导入 需要的 library 库
import numpy as np  # 科学计算
import matplotlib.pyplot as plt  # 画图工具
import scipy.signal as sg  # 导入 scipy 的 signal 库 命名为 sg


# 用 Python 表示
def Sa(x):
    return np.divide(np.sin(x), x) if x != 0 else 1


def F_n(T, ns, tau):
    omega = 2 * np.pi / T
    return np.array([round(np.divide(tau, T) * Sa(np.divide(n * omega * tau, 2)), 6) for n in ns])


# 画图
n = np.linspace(-12, 12, 25)
y = F_n(8 * np.pi, n, 2 * np.pi)
plt.stem(n, y, '-', label='f', markerfmt='C3o', use_line_collection=True)
plt.xticks(n[::4], [fr'${i * 4}\Omega$' for i in range(-3, 4)])
plt.title(r'FIG. 2.1: $T=4\tau, \Omega = 2\pi/\tau$')
plt.show()
